schema.sql এবং data.sql ফাইল ব্যবহার করে Database Initialization

Java Technologies - স্প্রিং জেডিবিসি (Spring JDBC) Spring JDBC এবং SQL Script Integration |
82
82

Spring Framework ডাটাবেস ইনিশিয়ালাইজেশনের জন্য schema.sql এবং data.sql ফাইল সরবরাহ করার সুবিধা প্রদান করে। এই ফাইলগুলো স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন চালানোর সময় Spring JDBC-এর মাধ্যমে ডাটাবেস ইনিশিয়ালাইজ করতে ব্যবহার করা হয়।


কীভাবে কাজ করে?

  1. schema.sql:
    • এটি ডাটাবেসের স্কিমা (টেবিল, ইন্ডেক্স, কনস্ট্রেইন্ট ইত্যাদি) তৈরি করতে ব্যবহৃত হয়।
    • সাধারণত টেবিল তৈরি এবং ডাটাবেস স্ট্রাকচার ডিফাইন করার জন্য ব্যবহৃত হয়।
  2. data.sql:
    • এটি ডাটাবেসে প্রাথমিক ডাটা ইনসার্ট করতে ব্যবহৃত হয়।
    • সাধারণত ডিফল্ট বা পরীক্ষার ডেটা যোগ করার জন্য ব্যবহৃত হয়।

ব্যবহারের ধাপসমূহ:

1. schema.sql এবং data.sql ফাইল তৈরি করা

  • schema.sql: ডাটাবেস স্কিমা তৈরি করার জন্য SQL কমান্ড লিখুন।
-- schema.sql
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department VARCHAR(50),
    salary DECIMAL(10, 2)
);

CREATE TABLE department_stats (
    department VARCHAR(50) PRIMARY KEY,
    employee_count INT
);
  • data.sql: ডাটাবেসে প্রাথমিক ডাটা ইনসার্ট করার জন্য SQL কমান্ড লিখুন।
-- data.sql
INSERT INTO employees (name, department, salary) VALUES ('John Doe', 'HR', 50000);
INSERT INTO employees (name, department, salary) VALUES ('Jane Smith', 'IT', 60000);
INSERT INTO department_stats (department, employee_count) VALUES ('HR', 1);
INSERT INTO department_stats (department, employee_count) VALUES ('IT', 1);

2. ফাইলগুলো resources ফোল্ডারে সংরক্ষণ করুন

Spring Framework resources ফোল্ডারের মধ্যে থাকা schema.sql এবং data.sql ফাইলগুলো স্বয়ংক্রিয়ভাবে খুঁজে পায় এবং সেগুলো কার্যকর করে।

src/main/resources/
    ├── schema.sql
    ├── data.sql

Spring Boot এ Database Initialization সক্রিয় করা

Spring Boot-এ, ডাটাবেস ইনিশিয়ালাইজেশন স্বয়ংক্রিয়ভাবে সক্রিয় থাকে। তবে কনফিগারেশন যাচাই করতে নিম্নোক্ত সেটিংস চেক করুন:

application.properties ফাইলে কনফিগারেশন যোগ করা

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver

# Enable SQL initialization
spring.sql.init.mode=always

spring.sql.init.mode-এর মান

  • always: প্রতিবার অ্যাপ্লিকেশন চালানোর সময় ডাটাবেস ইনিশিয়ালাইজ করে।
  • embedded: শুধুমাত্র এম্বেডেড ডাটাবেসের (যেমন H2, HSQLDB) ক্ষেত্রে ইনিশিয়ালাইজ করে।
  • never: SQL ইনিশিয়ালাইজেশন বন্ধ রাখে।

Database Initialization-এর নিয়ম

  1. schema.sql প্রথমে কার্যকর হয়, এরপর data.sql
  2. যদি আপনি Spring Boot-এর spring.jpa.hibernate.ddl-auto সেটিং ব্যবহার করেন (যেমন create বা update), তখন schema.sql প্রয়োজন হয় না কারণ Hibernate নিজেই টেবিল তৈরি করতে পারে।

প্রসঙ্গ: H2 Database এর সাথে উদাহরণ

pom.xml-এ H2 ডাটাবেস ডিপেনডেন্সি যোগ করুন:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

application.properties ফাইল:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.sql.init.mode=always

অ্যাপ্লিকেশন চালানোর পর কাজটি কেমন দেখাবে:

  • schema.sql: টেবিল তৈরি করবে।
  • data.sql: টেবিলে ডাটা ইনসার্ট করবে।
  • H2 কনসোল (http://localhost:8080/h2-console) থেকে ডাটাবেস পরীক্ষা করা যাবে।

কাস্টম SQL ফাইল নামকরণ (Optional)

Spring Framework ডিফল্টভাবে schema.sql এবং data.sql ফাইলগুলো খুঁজে। আপনি কাস্টম ফাইল নাম ব্যবহার করতে চাইলে, নিচের প্রোপার্টি ব্যবহার করতে পারেন:

spring.sql.init.schema-locations=classpath:/custom-schema.sql
spring.sql.init.data-locations=classpath:/custom-data.sql

উপকারিতা:

  1. সহজ ডাটাবেস সেটআপ:
    • অ্যাপ্লিকেশন ডাটাবেস তৈরি এবং প্রাথমিক ডাটা লোড করার জন্য ম্যানুয়াল কাজ হ্রাস করে।
  2. পরীক্ষার সুবিধা:
    • টেস্ট ডেটাবেস দ্রুত ইনিশিয়ালাইজ করা যায়।
  3. স্বয়ংক্রিয়তা:
    • ডেভেলপমেন্ট এবং টেস্টিং উভয়ের জন্য স্বয়ংক্রিয় স্কিমা ও ডাটা লোড নিশ্চিত করে।

উপসংহার:

Spring JDBC-তে schema.sql এবং data.sql ফাইল ব্যবহার করে ডাটাবেস ইনিশিয়ালাইজেশন একটি সহজ এবং কার্যকর পদ্ধতি। এটি ডেভেলপমেন্ট এবং টেস্টিং-এর সময় প্রচুর সময় বাঁচায় এবং অ্যাপ্লিকেশনের ডাটাবেস স্ট্রাকচার ও ডেটার ধারাবাহিকতা নিশ্চিত করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion